package de.akabahn.ebd.stw.zdxfc.prs.tco.elemente.weichen;

import static de.akabahn.ebd.stw.zdxfc.prs.ZDXFCConstants.MELDER_WEICHE_12;
import static de.akabahn.ebd.stw.zdxfc.prs.tco.ZDXFCTcoConstants.WINDOW_BG_COLOR;

import java.awt.Graphics;

import de.akabahn.ebd.stw.zdxfc.prs.tco.elemente.Weiche;

/**
 * Implementierung der Weiche 12 auf dem TCO
 * 
 * @author Peter Eimann
 * @since 1.0
 * @version 1.1
 */
public class Weiche12 extends Weiche {

	/**
	 * Initialisieurung der Weiche
	 */
	public Weiche12() {
		super(MELDER_WEICHE_12);
	}

	/**
	 * Zeichnen der Weiche ohne Ausleuchtung auf dem TCO
	 * 
	 * @param g Der Grafik-Kontext
	 */
	@Override
	protected void paintWeiche(Graphics g) {
		g.drawLine(1040, 202, 1083, 202); // Spitze
		g.drawLine(937, 202, 1040, 202); // Rechts
		g.drawLine(977, 252, 1018, 252); // Links
		g.drawLine(1040, 202, 1020, 250); // Links
	}
	
	/**
	 * Zeichnen der Weichenspitze auf dem TCO
	 * 
	 * @param g Der Grafik-Kontext
	 */
	@Override
	protected void paintMelderSpitze(Graphics g) {
		g.drawLine(1055, 202, 1065, 202);
		if (highlightSpitze) {
			g.drawLine(1055, 201, 1065, 201);
		} else {
			g.setColor(WINDOW_BG_COLOR);
			g.drawLine(1055, 198, 1065, 198);
		}
	}

	/**
	 * Zeichnen der rechten Seite der Weiche auf dem TCO
	 * 
	 * @param g Der Grafik-Kontext
	 */
	@Override
	protected void paintMelderRechts(Graphics g) {
		g.drawLine(1015, 202, 1025, 202);
		if (highlightRechts) {
			g.drawLine(1015, 201, 1025, 201);
		} else {
			g.setColor(WINDOW_BG_COLOR);
			g.drawLine(1015, 198, 1025, 198);
		}
	}

	/**
	 * Zeichnen der linken Seite der Weiche auf dem TCO
	 * 
	 * @param g Der Grafik-Kontext
	 */
	@Override
	protected void paintMelderLinks(Graphics g) {
		g.drawLine(1037, 210, 1033, 219);
	}
}

